<f:subview xmlns="http://www.w3.org/1999/xhtml"
			xmlns:h="http://java.sun.com/jsf/html"
			xmlns:f="http://java.sun.com/jsf/core"
			xmlns:ui="http://java.sun.com/jsf/facelets"
			xmlns:p="http://primefaces.org/ui">
			
	<style type="text/css">
		table{
			border:1px solid #c7cdd1;
			border-collapse: collapse;
		}
		tr td{
			border: 1px solid #c7cdd1;
			padding:0.5em;
		}
		tr th{
			border: 1px solid #c7cdd1;
			padding:0.5em;
			background-color: #f6f8f9;
		}
	</style>

	<table>
		<thead>
			<tr>
				<th>配置</th>
				<th style="width:12em;">缺省值</th>
				<th>说明</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>name</td>
				<td></td>
				<td>配置这个属性的意义在于，如果存在多个数据源，监控的时候可以通过名字来区分开来。如果没有配置，将会生成一个名字，格式是：”DataSource-”
					+ System.identityHashCode(this).
					另外配置此属性至少在1.0.5版本中是不起作用的，强行设置name会出错。<a
					href="http://blog.csdn.net/lanmo555/article/details/41248763">详情-点此处</a>。
				</td>
			</tr>
			<tr>
				<td>url</td>
				<td></td>
				<td>连接数据库的url，不同数据库不一样。例如：<br/> mysql :
						jdbc:mysql://10.20.153.104:3306/druid2 
				<br/> oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto</td>
			</tr>
			<tr>
				<td>username</td>
				<td></td>
				<td>连接数据库的用户名</td>
			</tr>
			<tr>
				<td>password</td>
				<td></td>
				<td>连接数据库的密码。如果你不希望密码直接写在配置文件中，可以使用ConfigFilter。<a
					href="https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter">详细看这里</a></td>
			</tr>
			<tr>
				<td>driverClassName</td>
				<td>根据url自动识别</td>
				<td>这一项可配可不配，如果不配置druid会根据url自动识别dbType，然后选择相应的driverClassName</td>
			</tr>
			<tr>
				<td>initialSize</td>
				<td>0</td>
				<td>初始化时建立物理连接的个数。初始化发生在显示调用init方法，或者第一次getConnection时</td>
			</tr>
			<tr>
				<td>maxActive</td>
				<td>8</td>
				<td>最大连接池数量</td>
			</tr>
			<tr>
				<td>maxIdle</td>
				<td>8</td>
				<td>已经不再使用，配置了也没效果</td>
			</tr>
			<tr>
				<td>minIdle</td>
				<td></td>
				<td>最小连接池数量</td>
			</tr>
			<tr>
				<td>maxWait</td>
				<td></td>
				<td>获取连接时最大等待时间，单位毫秒。配置了maxWait之后，缺省启用公平锁，并发效率会有所下降，如果需要可以通过配置useUnfairLock属性为true使用非公平锁。</td>
			</tr>
			<tr>
				<td>poolPreparedStatements</td>
				<td>false</td>
				<td>是否缓存preparedStatement，也就是PSCache。PSCache对支持游标的数据库性能提升巨大，比如说oracle。在mysql下建议关闭。</td>
			</tr>
			<tr>
				<td>maxPoolPreparedStatementPerConnectionSize</td>
				<td>-1</td>
				<td>要启用PSCache，必须配置大于0，当大于0时，poolPreparedStatements自动触发修改为true。在Druid中，不会存在Oracle下PSCache占用内存过多的问题，可以把这个数值配置大一些，比如说100</td>
			</tr>
			<tr>
				<td>validationQuery</td>
				<td></td>
				<td>用来检测连接是否有效的sql，要求是一个查询语句，常用select
					‘x’。如果validationQuery为null，testOnBorrow、testOnReturn、testWhileIdle都不会起作用。</td>
			</tr>
			<tr>
				<td>validationQueryTimeout</td>
				<td></td>
				<td>单位：秒，检测连接是否有效的超时时间。底层调用jdbc Statement对象的void
					setQueryTimeout(int seconds)方法</td>
			</tr>
			<tr>
				<td>testOnBorrow</td>
				<td>true</td>
				<td>申请连接时执行validationQuery检测连接是否有效，做了这个配置会降低性能。</td>
			</tr>
			<tr>
				<td>testOnReturn</td>
				<td>false</td>
				<td>归还连接时执行validationQuery检测连接是否有效，做了这个配置会降低性能。</td>
			</tr>
			<tr>
				<td>testWhileIdle</td>
				<td>false</td>
				<td>建议配置为true，不影响性能，并且保证安全性。申请连接的时候检测，如果空闲时间大于timeBetweenEvictionRunsMillis，执行validationQuery检测连接是否有效。</td>
			</tr>
			<tr>
				<td>timeBetweenEvictionRunsMillis</td>
				<td>1分钟（1.0.14）</td>
				<td>有两个含义：<br/> 1)
						Destroy线程会检测连接的间隔时间，如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
				<br/> 2) testWhileIdle的判断依据，详细看testWhileIdle属性的说明</td>
			</tr>
			<tr>
				<td>numTestsPerEvictionRun</td>
				<td>30分钟（1.0.14）</td>
				<td>不再使用，一个DruidDataSource只支持一个EvictionRun</td>
			</tr>
			<tr>
				<td>minEvictableIdleTimeMillis</td>
				<td></td>
				<td>连接保持空闲而不被驱逐的最长时间</td>
			</tr>
			<tr>
				<td>connectionInitSqls</td>
				<td></td>
				<td>物理连接初始化的时候执行的sql</td>
			</tr>
			<tr>
				<td>exceptionSorter</td>
				<td>根据dbType自动识别</td>
				<td>当数据库抛出一些不可恢复的异常时，抛弃连接</td>
			</tr>
			<tr>
				<td>filters</td>
				<td></td>
				<td>属性类型是字符串，通过别名的方式配置扩展插件，常用的插件有：<br/>
						监控统计用的filter:stat
				<br/> 日志用的filter:log4j
				<br/> 防御sql注入的filter:wall</td>
			</tr>
			<tr>
				<td>proxyFilters</td>
				<td></td>
				<td>类型是List&lt;com.alibaba.druid.filter.Filter&gt;，如果同时配置了filters和proxyFilters，是组合关系，并非替换关系</td>
			</tr>
		</tbody>
	</table>
	<p>想了解更多请参考 <a href="https://github.com/alibaba/druid/wiki" target="_blank">https://github.com/alibaba/druid/wiki</a></p>

</f:subview>